use super::message::Message;

/**
 * @author Almas software technologies muhtarjaan mahmood (مۇختەرجان مەخمۇت)
 * @email ug-project@outlook.com
 * @create date 2022-07-05 19:28:37
 * @modify date 2022-07-05 19:28:37
 * @desc [description]
*/

#[async_trait::async_trait()]
pub trait StorageSystem {
    async fn store_immediately(&self, message: &Message) -> ();
    async fn store_with_schedule(&self, message: &Message) -> ();
    async fn read_messages_at(&self, offset: u64, count: u16) -> Vec<Message>;
}
